InterBase+IBQuery

Otázka od: Otruba Vladimir ml.

29. 7. 2004 9:41

Zdravim

S databazi zacinam, takze nejspis lama dotaz:
Pokud si DBGrid napojim na Table, muzu data bez problemu editovat. Pokud
vsak Grida napojim na IBQuery, nebo IBDataSet tak
to nejde. Muzete poradit??

Delphi 5 Pro. Win98, IB v 5.5.0.


Diky moc, Vlada.


Odpovedá: Otisk Rene

29. 7. 2004 9:17

Needitovat data v Gridu ale pres SQL prikazy resp ulozene procedury...

Sroub



S databazi zacinam, takze nejspis lama dotaz:
Pokud si DBGrid napojim na Table, muzu data bez problemu editovat. Pokud
vsak Grida napojim na IBQuery, nebo IBDataSet tak
to nejde. Muzete poradit??




Odpovedá: Martin Bednar

29. 7. 2004 9:21

OVm> Pokud si DBGrid napojim na Table, muzu data bez problemu editovat. Pokud
OVm> vsak Grida napojim na IBQuery, nebo IBDataSet tak
OVm> to nejde. Muzete poradit??

To je v poradku. IBQuery "pouze" vraci data ze serveru, ktera nejdou
primo editovat, je nutne editaci obslozit sam a do IBQuery.sql vlozit
primo sql prikaz INSERT INTO table .....

V IBDatasetu je to mirne jednodussi jen je treba vyplnit i dalsi
property napr.
IBDataset.InsertSQL, IBDataSet.RefreshSQL ....., pote je mozno primo
napojit trebas DBGrid a primo editovat.




Odpovedá: Karel Rys

29. 7. 2004 9:28

Otruba Vladimir ml. dne 29 Jul 2004 v 9:59:

> S databazi zacinam, takze nejspis lama dotaz:
> Pokud si DBGrid napojim na Table, muzu data bez problemu editovat.
> Pokud vsak Grida napojim na IBQuery, nebo IBDataSet tak to nejde.
> Muzete poradit??

IBQuery standardne editovat nepujde.

IBDataSet pujde, ale musis si na nej kliknout pravym, dat asi druhy prikaz
odzhora, ktery si ted
nevybavuju   (neco jako edit dataset apod.) a nechat vygenerovat dodatecne
SQL dotazy k nemu
(pro refresh, insert, delete, modify). Obvykle pak RefreshSQL jeste musim
editovat rucne.

Karel Rys



Odpovedá: Peter Ondras

29. 7. 2004 10:17

Musis pridat k IBQuery este IBUpdateObject a vyplnit vsetky SQL prikazy
ktore na nom su. Potom mozes IBQuery pouzivat rovnako ako tabulku
(Query.Append (Edit), Query.Post) a o vsetko sa postara na pozadi
UpdateObject.

K tomu pridavam ukazku vyplnenia jednotlivych SQL (prebrate z archivu
konfery):

SelectSQL:
   SELECT
     KLIC, X, Y
   FROM
     TABULKA

InsertSQL:
   INSERT INTO TABULKA
     (KLIC, X, Y)
   VALUES
     (:KLIC, :X, :Y)

ModifySQL:
   UPDATE TABULKA SET
     X = :X,
     Y = :Y
   WHERE
     KLIC = :OLD_KLIC

DeleteSQL:
   DELETE FROM TABULKA
   WHERE
     KLIC = :OLD_KLIC

RefreshSQL
   SELECT
     KLIC, X, Y
   FROM
     TABULKA
   WHERE
     KLIC = :OLD_KLIC

kde plati, ze:
TABULKA je nejaka tabulka do se dotazujes
KLIC je jeji primarni klic (proto ho neupdatuju, to se primarnim klicum
nedela  
X a Y jsou nejake dalsi sloupce


> -----Original Message-----
>
> S databazi zacinam, takze nejspis lama dotaz:
> Pokud si DBGrid napojim na Table, muzu data bez problemu editovat.
Pokud
> vsak Grida napojim na IBQuery, nebo IBDataSet tak
> to nejde. Muzete poradit??


Odpovedá: Lahoda Radek

29. 7. 2004 10:48

a da se nejak udelat dva dotazy pri editovani, jeden modify a druhy insert
do tabulky zurnalu? diky

Radek Lahoda


----- Puvodni zprava -----
Od: "Peter Ondras" <peter.ondras@pse.sk>


> Musis pridat k IBQuery este IBUpdateObject a vyplnit vsetky SQL prikazy
> ktore na nom su. Potom mozes IBQuery pouzivat rovnako ako tabulku
> (Query.Append (Edit), Query.Post) a o vsetko sa postara na pozadi
> UpdateObject.
>
> K tomu pridavam ukazku vyplnenia jednotlivych SQL (prebrate z archivu
> konfery):
>



Odpovedá: Milan Tomes

29. 7. 2004 12:05

IMHO je tohle lepsi resit triggerem... Je to potom vcelku bez prace...  

S pozdravem

Milan Tomes

> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Lahoda Radek
> Sent: Thursday, July 29, 2004 11:48 AM
>
> a da se nejak udelat dva dotazy pri editovani, jeden modify a druhy insert
> do tabulky zurnalu? diky


Odpovedá: Marian Nykel

29. 7. 2004 11:23

Ahoj,
ja resim praci s IB pres IBSQL:
 - IBSQL.Sql.Text := '...';
   IBSQL.ExecQuery;
      ... zpracuju vysledky
   IBSQL.Close;
a hotovo...

Mozna vice kodu, ale zase je resitelne libovolne zadani a vse je
jednoduse pod kontrolou.

mANY


Lahoda Radek wrote:

>a da se nejak udelat dva dotazy pri editovani, jeden modify a druhy insert
>do tabulky zurnalu? diky
>
>Radek Lahoda
>
>
>----- Puvodni zprava -----
>Od: "Peter Ondras" <peter.ondras@pse.sk>
>
>
>
>
>>Musis pridat k IBQuery este IBUpdateObject a vyplnit vsetky SQL prikazy
>>ktore na nom su. Potom mozes IBQuery pouzivat rovnako ako tabulku
>>(Query.Append (Edit), Query.Post) a o vsetko sa postara na pozadi
>>UpdateObject.
>>
>>K tomu pridavam ukazku vyplnenia jednotlivych SQL (prebrate z archivu
>>konfery):
>>
>>
>>
>
>
>
>
>
>
>
>


Odpovedá: Peter Ondras

29. 7. 2004 12:06

Pri pouziti IBQuery sice mozes urobit niekolko SQL naraz, ale vzdy sa
splni len to, ktore vyplnie z akcie IBQuery (napr. Query.Insert alebo
Query.Edit - tazko urobis obe naraz). Ked chces viac SQL (insert aj
modify) tak musis pouzit IBSQL a robit ExecQuery. Ako niekto pisal je s
tym viac prace, ale urobis vsetko co si vymyslis.


> -----Original Message-----
>
> a da se nejak udelat dva dotazy pri editovani, jeden modify a druhy
insert
> do tabulky zurnalu? diky